﻿namespace DeltaGroup.WheelOfJeopardy.GameManager
{
    using System;

    using DeltaGroup.WheelOfJeopardy.Model;
    using DeltaGroup.WheelOfJeopardy.UI.Events;

    public interface IFinalJeopardyUIManager
    {
        #region Events

        /// <summary>
        ///   Raised when a contestant has responded to challenge
        /// </summary>
        event EventHandler<ChallengeResponseReceivedEventArgs> ChallengeResponseReceived;

        /// <summary>
        ///   Raised when a contestant has failed to respond within time allowed
        /// </summary>
        event EventHandler ResponseTimerExpired;

        event EventHandler<WagerReceivedEventArgs> WagerReceived;

        #endregion Events

        #region Methods

        /// <summary>
        /// Prompts for response.
        /// </summary>
        /// <param name="challenge">The challenge.</param>
        /// <param name="secondsAllowed">The seconds allowed.</param>
        void PromptForResponse(Challenge challenge, int secondsAllowed);

        /// <summary>
        /// Prompts for wager.
        /// </summary>
        /// <param name="maxAllowed">The max allowed.</param>
        void PromptForWager(int maxAllowed);

        #endregion Methods
    }
}